Technical computing environments are known that present a user, such as a scientist or engineer, with an environment that enables efficient analysis and generation of technical applications. For example, users may perform analyses, visualize data, and develop algorithms. Technical computing environments may allow a technical researcher or designer to efficiently and quickly perform tasks such as research and product development.
Existing technical computing environments may be implemented as or run in conjunction with a graphically-based environment. For example, in one existing graphically-based technical computing environment, graphical simulation tools allow models to be built by connecting graphical blocks, where each block may represent an object associated with functionality and/or data. Blocks may be hierarchical in the sense that each block itself may be implemented as one or more blocks. A user may, for instance, view the model at a high level, then select blocks to drill down into the model to see increasing levels of model detail.
Models generated with graphical simulation tools may be directly converted to computer code by the graphical simulation tool, which can then be executed in the target environment. For example, a model of a control system for an automobile may be graphically developed with the graphical simulation tool, implemented as code, and then deployed in an embedded system in the automobile.
It is often desirable that a graphical model be tested or verified before a system using the model is deployed. One technique for verifying a model is based on a coverage analysis of the model. In general, coverage analysis may provide a measure of how complete test data input to the model was in testing the model. Knowing the completeness of testing can be important in determining whether a model is ready to be implemented in a “live” system. For example, if the coverage analysis indicates that certain portions of the model or the code used to implement the model were not used when the model was run with the test data, it may be desirable to revise the model or the test data to obtain more complete coverage.
A concept related to model coverage is code coverage. Code coverage analysis may be used to dynamically analyze the way that a program executes. Similar to model coverage analysis, with code coverage analysis, it may be desirable to determine the completeness with which program code was executed during testing.